def pretty_print(word_count_dict): '''Print nicely from highest to lowest frequency.''' # create a list of tuples, (value, key) # value_key_list = [(val,key) for key,val in d.items()] value_key_list=[] for key,val in word_count_dict.items(): value_key_list.append((val,key)) # sort method sorts on list's first element, the frequency. # Reverse to get biggest first value_key_list.sort(reverse=True) # value_key_list = sorted([(v,k) for k,v in value_key_list.items()], reverse=True) print('{:11s}{:11s}'.format('Word', 'Count')) print('_'*21) for val,key in value_key_list: print('{:12s} {:<3d}'.format(key,val))